﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InstantSpine.Core
{
    // this interface doesn't make much sense given that
    // it's isomorphic to Action<ISpineModel, string, Action<ModelGenerationPhase, int, int>>
    public interface ISpineFEModelGenerator
    {
        /// <summary>
        /// Generates an FE model based on the paramterization
        /// described by a given ISpineModel instance
        /// </summary>
        /// <param name="modelSetup">Configuration and paramterization of the spine model</param>
        /// <param name="destination">Determines the destination of the generated FE model</param>
        /// <param name="setStatus"></param>
        void GenerateFEModel(
            ISpineModel modelSetup, 
            string destination = null, 
            Action<ModelGenerationPhase, int, int> setStatus = null);
    }
}
